﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Data;
using IToursDataService.Models;

namespace IToursDataService
{
    // 注意: 使用“重构”菜单上的“重命名”命令，可以同时更改代码和配置文件中的接口名“IEntertainmenRestaurantOrderCtrl”。
    [ServiceContract]
    public interface IEntertainmenRestaurantOrderCtrl
    {
        #region 娱乐、餐单预订信息获取

        /// <summary>
        /// 导游报销用，根据团号获取娱乐餐单信息
        /// </summary>
        /// <param name="tourGroupId"></param>
        /// <returns></returns>
        //[OperationContract]
        //DataTable GetEntertainmentRestaurantSignBill(string tourGroupId);
        /// <summary>
        /// 依据大行程计划号娱乐餐单预定数据
        /// </summary>
        /// <param name="tourGroupScheduleId">行程计划ID</param>
        /// <param name="expenseId">费用标识</param>
        /// <returns></returns>
        //[OperationContract]
        //DataTable GetEntertainmentOrderData(int tourGroupScheduleId, string expenseId);

        /// <summary>
        /// 根据团号及本地行程计划号获取行程预订信息
        /// </summary>
        /// <param name="tourGroupId"></param>
        /// <param name="localPlanScheduleId"></param>
        /// <returns></returns>
        //[OperationContract]
        //DataTable GetEntertainmentOrderData(string tourGroupId, string localPlanScheduleId);
        //[OperationContract]
        //DataTable GetRestaurantOrderData(string tourGroupId, string localPlanScheduleId);
        #endregion

        #region 娱乐、餐单预订信息的增、删、改
        //[OperationContract]
        //int CreateEntertainmenRestaurantOrderAndExpenseData(ExpenseEntity expense, EntertainmenRestaurantOrderEntity entertaintOrder);

        /// <summary>
        /// 计调更新娱乐、餐单预订的部分数据信息，不包括(EntertainmentOrderID ExpenseID TourgroupID TourgroupName ProviderID ProviderName LocalPlanScheduleID ServiceName ContractPath OrderState)字段
        /// </summary>                                                                                                             
        /// <param name="expense"></param>                                                                                        
        /// <param name="flightOrder"></param>                                                                                     
        /// <returns></returns>                                                                                                    
        //[OperationContract]
        //int UpdateEntertainmenRestaurantOrderData(ExpenseEntity expense, EntertainmenRestaurantOrderEntity entertainmentRestaurantOrder);
        /// <summary>
        /// 计调更新娱乐、餐单预订的部分数据信息，仅服务项目和备注字段
        /// </summary>                                                                                                             
        /// <param name="expense"></param>                                                                                        
        /// <param name="flightOrder"></param>                                                                                     
        /// <returns></returns>                                                                                                    
        //[OperationContract]
        //int UpdateEntertainmenRestaurantOrderPart(EntertainmenRestaurantOrderEntity entertainmentRestaurantOrder);
        /// <summary>
        /// 更改娱乐、餐单的订单状态
        /// </summary>
        /// <param name="trainOrderId">订单号</param>
        /// <param name="orderState">状态</param>
        /// <returns></returns>

        #endregion


        #region 娱乐、餐单计调信息查询

        //[OperationContract]
        //DataTable GetEntertainmentRestaurantOrderData(string tourGroupId, string providerId, DateTime startDate, DateTime endDate, string entertainmentOrderId, OrderStateEnum orderState);
        //[OperationContract]
        //DataTable GetEntertainmentRestaurantOrderDataByExpenseId(string expenseId);
        #endregion

        [OperationContract]
        DataTable GetEntertainmenRestaurantOrderData(string tourgroupId);
    }
}
